home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / PInterfaces / MediaHandlers.p < prev    next >
Encoding:
Text File  |  1996-09-22  |  11.3 KB  |  326 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        MediaHandlers.p
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.5
  7.                  Release:    Universal Interfaces 2.1.4
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT MediaHandlers;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __MEDIAHANDLERS__}
  28. {$SETC __MEDIAHANDLERS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC MediaHandlersIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __MEMORY__}
  35. {$I Memory.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __IMAGECOMPRESSION__}
  38. {$I ImageCompression.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __MOVIES__}
  41. {$I Movies.p}
  42. {$ENDC}
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48.  
  49. CONST
  50.     handlerHasSpatial            = $01;
  51.     handlerCanClip                = $02;
  52.     handlerCanMatte                = $04;
  53.     handlerCanTransferMode        = $08;
  54.     handlerNeedsBuffer            = $10;
  55.     handlerNoIdle                = $20;
  56.     handlerNoScheduler            = $40;
  57.     handlerWantsTime            = $80;
  58.     handlerCGrafPortOnly        = $0100;
  59.     handlerCanSend                = $0200;
  60.  
  61. {  media task flags  }
  62.     mMustDraw                    = $08;
  63.     mAtEnd                        = $10;
  64.     mPreflightDraw                = $20;
  65.     mSyncDrawing                = $40;
  66.  
  67. {  media task result flags  }
  68.     mDidDraw                    = $01;
  69.     mNeedsToDraw                = $04;
  70.     mDrawAgain                    = $08;
  71.     mPartialDraw                = $10;
  72.  
  73.     forceUpdateRedraw            = $01;
  74.     forceUpdateNewBuffer        = $02;
  75.  
  76.  
  77. TYPE
  78.     GetMovieCompleteParamsPtr = ^GetMovieCompleteParams;
  79.     GetMovieCompleteParams = RECORD
  80.         version:                INTEGER;
  81.         theMovie:                Movie;
  82.         theTrack:                Track;
  83.         theMedia:                Media;
  84.         movieScale:                TimeScale;
  85.         mediaScale:                TimeScale;
  86.         movieDuration:            TimeValue;
  87.         trackDuration:            TimeValue;
  88.         mediaDuration:            TimeValue;
  89.         effectiveRate:            Fixed;
  90.         timeBase:                TimeBase;
  91.         volume:                    INTEGER;
  92.         width:                    Fixed;
  93.         height:                    Fixed;
  94.         trackMovieMatrix:        MatrixRecord;
  95.         moviePort:                CGrafPtr;
  96.         movieGD:                GDHandle;
  97.         trackMatte:                PixMapHandle;
  98.         inputMap:                QTAtomContainer;
  99.     END;
  100.  
  101.  
  102. CONST
  103.     kMediaVideoParamBrightness    = 1;
  104.     kMediaVideoParamContrast    = 2;
  105.     kMediaVideoParamHue            = 3;
  106.     kMediaVideoParamSharpness    = 4;
  107.     kMediaVideoParamSaturation    = 5;
  108.     kMediaVideoParamBlackLevel    = 6;
  109.     kMediaVideoParamWhiteLevel    = 7;
  110.  
  111.  
  112. TYPE
  113.     dataHandlePtr                        = ^Handle;
  114.     dataHandleHandle                    = ^dataHandlePtr;
  115. {  MediaCallRange2  }
  116. {  These are unique to each type of media handler  }
  117. {  They are also included in the public interfaces  }
  118. { **** These are the calls for dealing with the Generic media handler **** }
  119. FUNCTION MediaInitialize(mh: MediaHandler; VAR gmc: GetMovieCompleteParams): ComponentResult;
  120.     {$IFC NOT GENERATINGCFM}
  121.     INLINE $2F3C, $0004, $0501, $7000, $A82A;
  122.     {$ENDC}
  123. FUNCTION MediaSetHandlerCapabilities(mh: MediaHandler; flags: LONGINT; flagsMask: LONGINT): ComponentResult;
  124.     {$IFC NOT GENERATINGCFM}
  125.     INLINE $2F3C, $0008, $0502, $7000, $A82A;
  126.     {$ENDC}
  127. FUNCTION MediaIdle(mh: MediaHandler; atMediaTime: TimeValue; flagsIn: LONGINT; VAR flagsOut: LONGINT; {CONST}VAR movieTime: TimeRecord): ComponentResult;
  128.     {$IFC NOT GENERATINGCFM}
  129.     INLINE $2F3C, $0010, $0503, $7000, $A82A;
  130.     {$ENDC}
  131. FUNCTION MediaGetMediaInfo(mh: MediaHandler; h: Handle): ComponentResult;
  132.     {$IFC NOT GENERATINGCFM}
  133.     INLINE $2F3C, $0004, $0504, $7000, $A82A;
  134.     {$ENDC}
  135. FUNCTION MediaPutMediaInfo(mh: MediaHandler; h: Handle): ComponentResult;
  136.     {$IFC NOT GENERATINGCFM}
  137.     INLINE $2F3C, $0004, $0505, $7000, $A82A;
  138.     {$ENDC}
  139. FUNCTION MediaSetActive(mh: MediaHandler; enableMedia: BOOLEAN): ComponentResult;
  140.     {$IFC NOT GENERATINGCFM}
  141.     INLINE $2F3C, $0002, $0506, $7000, $A82A;
  142.     {$ENDC}
  143. FUNCTION MediaSetRate(mh: MediaHandler; rate: Fixed): ComponentResult;
  144.     {$IFC NOT GENERATINGCFM}
  145.     INLINE $2F3C, $0004, $0507, $7000, $A82A;
  146.     {$ENDC}
  147. FUNCTION MediaGGetStatus(mh: MediaHandler; VAR statusErr: ComponentResult): ComponentResult;
  148.     {$IFC NOT GENERATINGCFM}
  149.     INLINE $2F3C, $0004, $0508, $7000, $A82A;
  150.     {$ENDC}
  151. FUNCTION MediaTrackEdited(mh: MediaHandler): ComponentResult;
  152.     {$IFC NOT GENERATINGCFM}
  153.     INLINE $2F3C, $0000, $0509, $7000, $A82A;
  154.     {$ENDC}
  155. FUNCTION MediaSetMediaTimeScale(mh: MediaHandler; newTimeScale: TimeScale): ComponentResult;
  156.     {$IFC NOT GENERATINGCFM}
  157.     INLINE $2F3C, $0004, $050A, $7000, $A82A;
  158.     {$ENDC}
  159. FUNCTION MediaSetMovieTimeScale(mh: MediaHandler; newTimeScale: TimeScale): ComponentResult;
  160.     {$IFC NOT GENERATINGCFM}
  161.     INLINE $2F3C, $0004, $050B, $7000, $A82A;
  162.     {$ENDC}
  163. FUNCTION MediaSetGWorld(mh: MediaHandler; aPort: CGrafPtr; aGD: GDHandle): ComponentResult;
  164.     {$IFC NOT GENERATINGCFM}
  165.     INLINE $2F3C, $0008, $050C, $7000, $A82A;
  166.     {$ENDC}
  167. FUNCTION MediaSetDimensions(mh: MediaHandler; width: Fixed; height: Fixed): ComponentResult;
  168.     {$IFC NOT GENERATINGCFM}
  169.     INLINE $2F3C, $0008, $050D, $7000, $A82A;
  170.     {$ENDC}
  171. FUNCTION MediaSetClip(mh: MediaHandler; theClip: RgnHandle): ComponentResult;
  172.     {$IFC NOT GENERATINGCFM}
  173.     INLINE $2F3C, $0004, $050E, $7000, $A82A;
  174.     {$ENDC}
  175. FUNCTION MediaSetMatrix(mh: MediaHandler; VAR trackMovieMatrix: MatrixRecord): ComponentResult;
  176.     {$IFC NOT GENERATINGCFM}
  177.     INLINE $2F3C, $0004, $050F, $7000, $A82A;
  178.     {$ENDC}
  179. FUNCTION MediaGetTrackOpaque(mh: MediaHandler; VAR trackIsOpaque: BOOLEAN): ComponentResult;
  180.     {$IFC NOT GENERATINGCFM}
  181.     INLINE $2F3C, $0004, $0510, $7000, $A82A;
  182.     {$ENDC}
  183. FUNCTION MediaSetGraphicsMode(mh: MediaHandler; mode: LONGINT; {CONST}VAR opColor: RGBColor): ComponentResult;
  184.     {$IFC NOT GENERATINGCFM}
  185.     INLINE $2F3C, $0008, $0511, $7000, $A82A;
  186.     {$ENDC}
  187. FUNCTION MediaGetGraphicsMode(mh: MediaHandler; VAR mode: LONGINT; VAR opColor: RGBColor): ComponentResult;
  188.     {$IFC NOT GENERATINGCFM}
  189.     INLINE $2F3C, $0008, $0512, $7000, $A82A;
  190.     {$ENDC}
  191. FUNCTION MediaGSetVolume(mh: MediaHandler; volume: INTEGER): ComponentResult;
  192.     {$IFC NOT GENERATINGCFM}
  193.     INLINE $2F3C, $0002, $0513, $7000, $A82A;
  194.     {$ENDC}
  195. FUNCTION MediaSetSoundBalance(mh: MediaHandler; balance: INTEGER): ComponentResult;
  196.     {$IFC NOT GENERATINGCFM}
  197.     INLINE $2F3C, $0002, $0514, $7000, $A82A;
  198.     {$ENDC}
  199. FUNCTION MediaGetSoundBalance(mh: MediaHandler; VAR balance: INTEGER): ComponentResult;
  200.     {$IFC NOT GENERATINGCFM}
  201.     INLINE $2F3C, $0004, $0515, $7000, $A82A;
  202.     {$ENDC}
  203. FUNCTION MediaGetNextBoundsChange(mh: MediaHandler; VAR when: TimeValue): ComponentResult;
  204.     {$IFC NOT GENERATINGCFM}
  205.     INLINE $2F3C, $0004, $0516, $7000, $A82A;
  206.     {$ENDC}
  207. FUNCTION MediaGetSrcRgn(mh: MediaHandler; rgn: RgnHandle; atMediaTime: TimeValue): ComponentResult;
  208.     {$IFC NOT GENERATINGCFM}
  209.     INLINE $2F3C, $0008, $0517, $7000, $A82A;
  210.     {$ENDC}
  211. FUNCTION MediaPreroll(mh: MediaHandler; time: TimeValue; rate: Fixed): ComponentResult;
  212.     {$IFC NOT GENERATINGCFM}
  213.     INLINE $2F3C, $0008, $0518, $7000, $A82A;
  214.     {$ENDC}
  215. FUNCTION MediaSampleDescriptionChanged(mh: MediaHandler; index: LONGINT): ComponentResult;
  216.     {$IFC NOT GENERATINGCFM}
  217.     INLINE $2F3C, $0004, $0519, $7000, $A82A;
  218.     {$ENDC}
  219. FUNCTION MediaHasCharacteristic(mh: MediaHandler; characteristic: OSType; VAR hasIt: BOOLEAN): ComponentResult;
  220.     {$IFC NOT GENERATINGCFM}
  221.     INLINE $2F3C, $0008, $051A, $7000, $A82A;
  222.     {$ENDC}
  223. FUNCTION MediaGetOffscreenBufferSize(mh: MediaHandler; VAR bounds: Rect; depth: INTEGER; ctab: CTabHandle): ComponentResult;
  224.     {$IFC NOT GENERATINGCFM}
  225.     INLINE $2F3C, $000A, $051B, $7000, $A82A;
  226.     {$ENDC}
  227. FUNCTION MediaSetHints(mh: MediaHandler; hints: LONGINT): ComponentResult;
  228.     {$IFC NOT GENERATINGCFM}
  229.     INLINE $2F3C, $0004, $051C, $7000, $A82A;
  230.     {$ENDC}
  231. FUNCTION MediaGetName(mh: MediaHandler; VAR name: Str255; requestedLanguage: LONGINT; VAR actualLanguage: LONGINT): ComponentResult;
  232.     {$IFC NOT GENERATINGCFM}
  233.     INLINE $2F3C, $000C, $051D, $7000, $A82A;
  234.     {$ENDC}
  235. FUNCTION MediaForceUpdate(mh: MediaHandler; forceUpdateFlags: LONGINT): ComponentResult;
  236.     {$IFC NOT GENERATINGCFM}
  237.     INLINE $2F3C, $0004, $051E, $7000, $A82A;
  238.     {$ENDC}
  239. FUNCTION MediaGetDrawingRgn(mh: MediaHandler; VAR partialRgn: RgnHandle): ComponentResult;
  240.     {$IFC NOT GENERATINGCFM}
  241.     INLINE $2F3C, $0004, $051F, $7000, $A82A;
  242.     {$ENDC}
  243. FUNCTION MediaGSetActiveSegment(mh: MediaHandler; activeStart: TimeValue; activeDuration: TimeValue): ComponentResult;
  244.     {$IFC NOT GENERATINGCFM}
  245.     INLINE $2F3C, $0008, $0520, $7000, $A82A;
  246.     {$ENDC}
  247. FUNCTION MediaInvalidateRegion(mh: MediaHandler; invalRgn: RgnHandle): ComponentResult;
  248.     {$IFC NOT GENERATINGCFM}
  249.     INLINE $2F3C, $0004, $0521, $7000, $A82A;
  250.     {$ENDC}
  251. FUNCTION MediaGetNextStepTime(mh: MediaHandler; flags: INTEGER; mediaTimeIn: TimeValue; VAR mediaTimeOut: TimeValue; rate: Fixed): ComponentResult;
  252.     {$IFC NOT GENERATINGCFM}
  253.     INLINE $2F3C, $000E, $0522, $7000, $A82A;
  254.     {$ENDC}
  255. FUNCTION MediaSetNonPrimarySourceData(mh: MediaHandler; inputIndex: LONGINT; dataDescriptionSeed: LONGINT; dataDescription: Handle; data: UNIV Ptr; dataSize: LONGINT; asyncCompletionProc: ICMCompletionProcRecordPtr; transferProc: ProcPtr; refCon: UNIV Ptr): ComponentResult;
  256.     {$IFC NOT GENERATINGCFM}
  257.     INLINE $2F3C, $0020, $0523, $7000, $A82A;
  258.     {$ENDC}
  259. FUNCTION MediaChangedNonPrimarySource(mh: MediaHandler; inputIndex: LONGINT): ComponentResult;
  260.     {$IFC NOT GENERATINGCFM}
  261.     INLINE $2F3C, $0004, $0524, $7000, $A82A;
  262.     {$ENDC}
  263. FUNCTION MediaTrackReferencesChanged(mh: MediaHandler): ComponentResult;
  264.     {$IFC NOT GENERATINGCFM}
  265.     INLINE $2F3C, $0000, $0525, $7000, $A82A;
  266.     {$ENDC}
  267. FUNCTION MediaGetSampleDataPointer(mh: MediaHandler; sampleNum: LONGINT; VAR dataPtr: Ptr; VAR dataSize: LONGINT; VAR sampleDescIndex: LONGINT): ComponentResult;
  268.     {$IFC NOT GENERATINGCFM}
  269.     INLINE $2F3C, $0010, $0526, $7000, $A82A;
  270.     {$ENDC}
  271. FUNCTION MediaReleaseSampleDataPointer(mh: MediaHandler; sampleNum: LONGINT): ComponentResult;
  272.     {$IFC NOT GENERATINGCFM}
  273.     INLINE $2F3C, $0004, $0527, $7000, $A82A;
  274.     {$ENDC}
  275. FUNCTION MediaTrackPropertyAtomChanged(mh: MediaHandler): ComponentResult;
  276.     {$IFC NOT GENERATINGCFM}
  277.     INLINE $2F3C, $0000, $0528, $7000, $A82A;
  278.     {$ENDC}
  279. FUNCTION MediaSetTrackInputMapReference(mh: MediaHandler; inputMap: QTAtomContainer): ComponentResult;
  280.     {$IFC NOT GENERATINGCFM}
  281.     INLINE $2F3C, $0004, $0529, $7000, $A82A;
  282.     {$ENDC}
  283. FUNCTION MediaSetVideoParam(mh: MediaHandler; whichParam: LONGINT; VAR value: INTEGER): ComponentResult;
  284.     {$IFC NOT GENERATINGCFM}
  285.     INLINE $2F3C, $0008, $052B, $7000, $A82A;
  286.     {$ENDC}
  287. FUNCTION MediaGetVideoParam(mh: MediaHandler; whichParam: LONGINT; VAR value: INTEGER): ComponentResult;
  288.     {$IFC NOT GENERATINGCFM}
  289.     INLINE $2F3C, $0008, $052C, $7000, $A82A;
  290.     {$ENDC}
  291. FUNCTION MediaCompare(mh: MediaHandler; VAR isOK: BOOLEAN; srcMedia: Media; srcMediaComponent: ComponentInstance): ComponentResult;
  292.     {$IFC NOT GENERATINGCFM}
  293.     INLINE $2F3C, $000C, $052D, $7000, $A82A;
  294.     {$ENDC}
  295. FUNCTION MediaGetClock(mh: MediaHandler; VAR clock: ComponentInstance): ComponentResult;
  296.     {$IFC NOT GENERATINGCFM}
  297.     INLINE $2F3C, $0004, $052E, $7000, $A82A;
  298.     {$ENDC}
  299. FUNCTION MediaSetSoundOutputComponent(mh: MediaHandler; outputComponent: Component): ComponentResult;
  300.     {$IFC NOT GENERATINGCFM}
  301.     INLINE $2F3C, $0004, $052F, $7000, $A82A;
  302.     {$ENDC}
  303. FUNCTION MediaGetSoundOutputComponent(mh: MediaHandler; VAR outputComponent: Component): ComponentResult;
  304.     {$IFC NOT GENERATINGCFM}
  305.     INLINE $2F3C, $0004, $0530, $7000, $A82A;
  306.     {$ENDC}
  307. FUNCTION MediaSetSoundLocalizationData(mh: MediaHandler; data: Handle): ComponentResult;
  308.     {$IFC NOT GENERATINGCFM}
  309.     INLINE $2F3C, $0004, $0531, $7000, $A82A;
  310.     {$ENDC}
  311. FUNCTION MediaFixSampleDescription(mh: MediaHandler; index: LONGINT; desc: SampleDescriptionHandle): ComponentResult;
  312.     {$IFC NOT GENERATINGCFM}
  313.     INLINE $2F3C, $0008, $0532, $7000, $A82A;
  314.     {$ENDC}
  315.  
  316. {$ALIGN RESET}
  317. {$POP}
  318.  
  319. {$SETC UsingIncludes := MediaHandlersIncludes}
  320.  
  321. {$ENDC} {__MEDIAHANDLERS__}
  322.  
  323. {$IFC NOT UsingIncludes}
  324.  END.
  325. {$ENDC}
  326.